package com.chia.multienty.core.service;

import com.chia.multienty.core.parameter.tenant.*;
import com.chia.multienty.core.pojo.AppInstance;
import com.chia.multienty.core.mybatis.service.KutaBaseService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chia.multienty.core.domain.dto.AppInstanceDTO;
import com.chia.multienty.core.strategy.pay.domain.bo.WxPayResultAttachBO;
import com.chia.multienty.core.strategy.pay.domain.bo.WxPayResultBO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * <p>
 * 应用实例 服务类
 * </p>
 *
 * @author Multi Tenant Auto Generator
 * @since 2024-03-27
 */
public interface AppInstanceService extends KutaBaseService<AppInstance> {

    AppInstanceDTO getDetail(AppInstanceDetailGetParameter parameter);

    void delete(AppInstanceDeleteParameter parameter);

    IPage<AppInstanceDTO> getPage(AppInstancePageGetParameter parameter);
    void enable(AppInstanceEnableParameter parameter);

    void disable(AppInstanceDisableParameter parameter);

    void save(AppInstanceSaveParameter parameter);


    List<AppInstanceDTO> getMyAppInsList(Long tenantId);

    AppInstanceDTO getMyCurrentAppIns();

    AppInstanceDTO getMyCurrentAppIns(Long tenantId);

    void update(AppInstanceUpdateParameter parameter);

    String renew(AppInstanceBecomeParameter parameter) throws Exception;

    boolean handleWxPayNotify(WxPayResultBO result, WxPayResultAttachBO attach);
}
